【精彩论文】基于DHT和区块链技术的电网安全稳定控制终端分布式认证
基于DHT和区块链技术的电网安全稳定控制终端分布式认证
赖业宁1, 封科1, 于同伟2, 王旺1, 唐冠军1
(1. 国网电力科学研究院有限公司,江苏 南京 210003; 2. 国网辽宁省电力有限公司电力科学研究院,辽宁 沈阳 110000)
引文信息
赖业宁, 封科, 于同伟, 等. 基于DHT和区块链技术的电网安全稳定控制终端分布式认证[J]. 中国电力, 2022, 55(4): 44-53.
LAI Yening, FENG Ke, YU Tongwei, et al. Distributed authentication of power grid safety and stability control terminals based on dht and blockchain[J]. Electric Power, 2022, 55(4): 44-53.
引言
1 哈希链认证技术与基于DHT的区块链存储优化方法
文献[12]使用了基于哈希链的身份认证方案,是一种利用哈希算法的单向性设计的一次性密码方案。哈希算法的单向性指给定输入可快速计算输出,但是从输出计算回输入极其困难。
(1)基于哈希链的身份认证关键过程。
设A、B为安控终端, SA,S′A 为终端A生成的随机种子信息;Hm(SA) 为用公开哈希算法对种子信息 SA 进行m次哈希运算后的结果。基于哈希链的身份认证关键过程如下[12]。
①终端A在注册阶段生成随机种子 SA ,基于系统内统一哈希算法对其进行n次哈希处理,生成用于后续认证的身份哈希链 L:{SA,H1(SA), H2(SA),⋯, Hn−1(SA),Hn(SA)} ,其中: Hi(SA)=H (Hi−1(SA)),0⩽ i⩽n 。终端A以哈希处理次数i为键,将包含 SA 在内的 n+1 个值保存在键值数据库中;在注册阶段的最后,终端A以自身的公开身份 PA 为标识,将 Hm(SA) 发布于认证区块链上。
②当终端A需要获取终端B的信任时,终端A提供身份标识 PA 和最新哈希值 Hi−1(SA) 给终端B,终端B从最新区块遍历认证区块链查询到 Hi(SA) ,并计算 H′=H(Hi−1(SA)) 。当 H′=Hi(SA) 时认证成功,返回确认消息给终端A,否则判断认证失败并发出警告。
③在认证成功后,终端A将新的身份信息 Hi−1(SA) 公开于认证区块链上用以后续认证。如果当前最新身份信息为 H2(SA) ,终端A取新的种子 S′A 再次执行哈希链生成操作得到新的哈希链 L′ ,然后以 H1(SA) 为凭据将 L′ 的最后一项 Hn(S′A) 发布,并将 L′ 中的各项作为后续认证的认证凭据。
(2)基于哈希链的身份认证技术的不足。
文献[12]方案能够保障安控终端间业务通信安全,基本满足安控系统通信认证的实时性和信任管理需求。然而,该方案存在以下不足。
①存储拓展性差。认证成功后,终端会更新自身的最新哈希值。终端将自身标识和 Hi−1(SA) 上传到认证区块链,新身份信息在区块链网络中的所有节点进行复制。在安控终端生命周期中,区块链数据量将会不断膨胀。尽管单次认证使用的数据规模较小,但从整个安控系统范围和较长的周期来看,造成的存储浪费仍难以接受。
②共识算法不适用。在电网安控终端认证系统中使用诸如工作量证明(proof of work,PoW)和权益证明(proof of stake,PoS)等共识算法是较困难的。一方面,PoW的共识效率低、计算开销大,在安控系统中难以被接受;另一方面,二者均需经过复杂的“发币”流程,这在能源交易以外的场景下是无意义的。因此,认证系统需要使用开销更低、更易于部署的共识算法。
1.2 基于DHT的可拓展区块链存储1.2.1 DHT技术概述DHT技术是一种数据分布式存储技术,其核心是网络中的每个存储节点生成固定结构的身份标识(identification, ID),系统中的每条数据都被映射到与节点ID的取值空间一致的空间中。进一步地,每个节点负责存储那些被映射到其ID对应的区域中的数据。DHT的一种典型实现是一致性哈希环[18],如图1所示例子,当哈希算法的输出位数为q时,数据和节点ID被映射到固定大小为2q−1的哈希环中,3个节点的哈希环共分成3部分:(A,B)、(B,C)、(C,A),其中节点A存储被映射到(C,A)部分的数据,节点B、C分别存储(A,B)、(B,C)部分的数据。在本文中,(C,A)部分被称为节点A的“存储域”,相应的,节点B、C的存储域为(A,B) 、(B,C)部分。在进行数据查询时,查询者发起请求后,当前节点将数据重新映射到该取值空间,即可判别该数据是否存在于本地。若数据未在本地存储,节点能判断出索引该数据存储节点的下一跳地址,并转发该查询请求直至找到存储数据的节点。
除了上述哈希环结构,DHT还有其他的实现方案。本文将使用跳图(skip graph)结构[19]实现的DHT完成区块链数据的分布式存储。
1.2.2 基于skip graph结构的分布式存储skip graph结构是在跳表(skip list)基础上延续和发展出的适用于分布式环境的数据结构[19]。
skip list是一种使用概率均衡技术的特殊链表结构,其查找效率与二叉树相近,均为 O(ln n) [20]。skip list以层级式结构排列,每层中的节点升序排列前后链接。底层(0层)包含全部节点,在第 i 层的每个节点以概率 r 存在于第 i+1 层中。在使用skip list查找时,较高层的链提供了快速查找的通道,即在查找特定数据键时首先从最高层向右查找,当找到最后一个小于待查找键值的节点时下降一层,重复直至找到对应节点(到达0层仍未找到时则查找失败)。
skip graph结构可以看作是共享底层的一系列skip list构成的组合结构,节点所属的skip list由节点的成员向量控制,成员向量的前 i 位相同的节点在第 i 层处于同一skip list中,如图2所示。文献[19]证明了skip graph的数据查询过程时间复杂度与skip list基本一致,均为 O (ln n) ,且skip graph结构中节点的查询、插入和节点删除过程均与skip list类似[21]。
将skip graph结构DHT应用在基于区块链的电网安全稳定控制终端分布式认证方案中,完成区块链上数据的分布式存储,思路为:将经过共识的区块数据经过哈希运算映射到与身份标识一致的取值空间后,第0层距离该数据最近的两个节点将存储该数据,同时在前 k 层中( k 作为可变的系统冗余参数),各skip list在每一层距离该位置最近的两个邻居节点将冗余地备份该数据。这使得特定的区块数据能够仅在特定节点上进行复制而非存储在所有节点上,提高了区块链系统的存储效率。
1.3 基于DHT和区块链的安控终端分布式认证可行性及优势当前安控系统多采用“主站-子站-执行站”的3层架构完成业务通信。其中,执行站向子站、子站向主站依次上送本站状态和可切负荷等运行信息,主站向子站、子站向执行站依次下发切负荷轮次命令等控制信息。同时,子站之间以及主站之间将互通投停信息和跳闸信息等[22]。以上用于实现电网安全稳定控制的主站、子站和执行站设备均被称为安控终端,此外,安控系统还包括负责监视并记录各终端运行信息、重要事件动作的稳定控制集中管理系统(stability control management system, SCMS)。SCMS通过调度数据网与各安全稳定控制站内设备进行通信。
终端间通过调度数据网和SCMS的中转能够实现点对点通信,具有部署区块链系统的网络基础。在终端注册阶段,安控系统运维人员在终端完成哈希链生成、发布操作的同时分配终端标识和成员向量;终端入网时,执行查询找到其在由安控终端构成的skip graph中所处的位置,随后调用插入算法。
认证阶段的主要流程和2.1节所述过程类似,不同之处在于收到对方终端认证材料的终端将执行skip graph查询算法,找到存储该部分区块数据的终端并获取相应数据,完成后续认证流程。
基于skip graph结构的DHT优势是能够实现分布式存储和相对高效的数据查询,相对于其他分布式存储方案,新节点的加入对存储布局的影响较小[23]。这一特性与基于区块链的安控终端身份认证方案的存储优化需求吻合,这使得基于skip graph结构的安控终端分布式存储方案能在时间复杂度较低、不影响终端间认证实时性的前提下,实现安全性和存储效率平衡的区块链数据存储。2 基于DHT和区块链的电网安全稳定控制终端分布式认证方案
2.1 方案概述
本文方案在将区块链与哈希链技术结合实现安控终端认证的同时,使用基于DHT的分布式存储提高该区块链系统的存储拓展性。方案的总体思路为:在基于实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)的联盟区块链系统中,根据skip graph结构对终端进行标识和分组,使在区块链系统中经过共识的身份认证材料数据仅在特定终端上进行复制而非存储在所有终端上;进行认证时,收到认证请求的终端将根据skip graph查询算法执行查询,获取区块链上的身份哈希信息并根据哈希链认证方法完成身份认证。方案整体架构如图3所示,在以安控终端业务架构为基础的点对点通信网络上,基于skip graph结构DHT划分各终端的存储域,形成分布式存储结构。根据冗余参数 k 的不同,该存储结构也相应变化。区块链账本中各区块将根据其哈希值被映射到终端网络中的对应终端上进行存储。下文将从终端注册、终端入网和终端认证3部分阐述方案细节。
2.2 终端注册
终端的注册阶段一般在其入网前离线完成,过程分为终端标识生成和身份哈希链生成2个步骤。由于此时终端尚未加入认证系统,注册阶段信息生成操作的合规性由安控系统运维人员保障。(1)终端标识生成。文献[12]提出了终端的唯一身份ID结构,包含网络通信地址(IP地址和端口号)、随机验证码和附加字段,终端间依据此ID进行交互认证和识别。电网内终端随机验证码保障了该ID 在认证系统中的唯一性,同时网络通信地址字段使得终端能够在获取其他终端ID后与其进行认证和通信。为便于实现基于skip graph结构的分布式存储,本文对文献[12]中的终端ID进行如下扩充:加入包含成员向量在内的存储标识字段。扩充后的终端ID如表1所示。表1 终端ID
Table 1 Terminal ID
在电网安全稳定控制这一特定应用背景下,终端ID的成员向量字段可由运维人员进行设置而非完全依赖随机生成,这更有利于数据查询和监管。(2)身份哈希链生成。与文献[12]类似,在终端标识生成后,终端选取随机种子 S 进行 n 次哈希运算(哈希算法选择SHA256算法),首次生成终端的身份哈希链,并存储在本地数据库。随后,终端向认证区块链发送终端身份 PA 和身份哈希链最后一项作为后续认证凭据。
2.3 终端入网
当终端注册完成后,身份标识和身份哈希链被公布,该终端将以此为基础进行入网申请。终端入网过程实质是在skip graph网络中插入新节点的过程。入网主要流程如图4所示。
终端入网过程需要进行一次skip graph查询操作,寻找终端在skip graph底层的位置。此次查询操作从一个初始引入节点开始进行,该节点由安控运维人员指定。终端找到其在skip graph底层的位置后,与其在底层中的邻居终端执行首次连接操作,即互相记录对方网络地址并交换区块链数据。随后终端将从底层开始,向上逐层寻找邻居节点并建立连接,直至顶层,并在层数不大于冗余参数 k 时与其邻居节点交换区块链数据。为提高后续认证过程的查询速度,在终端交换区块链数据的同时,它们会维护一个区块链视图[24]。该区块链视图是一个不断更新的元组表,其中以身份标识 P 为索引,存储了各终端的最新数据所在区块的区块头哈希 BL 、当前哈希链高度 i 和最新身份哈希 hL 。
2.4 终端认证
当终端A向终端B发起认证请求以获取终端B的信任时,认证流程如图5所示。
(1)认证请求发送。
终端A向B发送认证请求,请求内容包括自身标识 PA 、存储最新身份信息的区块哈希 BL 和 Hi−1(SA) 。
(2)认证数据查询。
终端B需要在基于skip graph结构存储的认证区块链上查询终端A的最新身份哈希 Hi(SA) 。详细认证数据查询算法如下。
在收到认证成功的消息后,终端A在认证区块链上更新认证信息和自身的身份。这一过程实质是向当前主节点发起新数据上链申请。当此次认证过程中区块链最新数据为 H2(SA) 时,终端A取新的种子 S′A ,再次执行哈希链生成操作,得到新哈希链 L′ ,以 H1(SA) 为凭据将新哈希链 L′ 的最后一项 Hn(S′A) 发布,并将 L′ 中的各项作为后续认证的凭据。主节点将在网络中收集一定时间段内的认证数据并将其打包成区块,基于PBFT共识算法进行全网共识。终端A在认证区块链上的最新身份哈希将在共识成功后被更新。
3 安全性与效率分析
3.1 安全性
本文方案使用了区块链技术和基于skip graph结构DHT的分布式存储,具有以下安全特性。
(1)认证信息可追溯性。认证完成后,认证发起方会将本次认证时间、认证双方标识等信息上传到认证区块链,确保了认证信息的可追溯性。该特性提高了电网安控终端认证系统的可监管性,降低了安控系统审计取证的复杂度。
(2)终端身份不可伪造性。方案使用身份哈希链进行基于一次性密码的认证。各安控终端将根据随机种子生成的身份哈希链与包含设备信息在内的终端ID相互绑定,有效地防止了恶意设备使用伪造身份与合法安控终端通信。此外,根据哈希算法的单向性,即使攻击者通过窃听等手段获取了某次认证中所使用的哈希秘密信息 Hi−1(SA) ,仍无法推断出 Hi−2(SA) 及哈希次数更低的哈希链数据,保障了通信认证的安全性。
(3)兼具容错性与存储拓展性。区块链系统通过冗余备份确保信息不会因单点故障而丢失或被恶意篡改,但冗余性导致系统的存储拓展性较低。本方案使用了DHT技术进行数据分布式存储,降低了数据的冗余度,但对于映射到每个位置上的数据,系统仍在skip graph结构的前 k 层进行冗余备份,因此,单点故障不会破坏整个系统的数据完整性。综上所述,本方案能够在不影响区块链系统容错性的前提下提高其存储拓展性。
(4)抗攻击性。尽管安控系统在电网内的保护级别较高,但仍可能出现部分终端被劫持或受到DoS攻击等情况。本方案使用PBFT共识机制,具有33%拜占庭容错性能[25],即只有当攻击者劫持了认证系统内1/3终端时,共识结果才会被恶意更改,这在电网安全稳定控制环境下是难以实现的。另一种攻击场景是攻击者通过被劫持的设备注入大量虚假数据,影响认证数据的正常存储,但分布式存储方法能很好地缓解该问题,使得认证系统不会在短时间内宕机,为反制攻击提供了条件。
3.2 时空效率分析3.2.1 时间复杂度设认证系统内安控终端数为n。终端认证过程首先调用skip graph数据搜索算法。在该算法中,从任意节点开始的搜索将沿着该终端所在的skip list搜索路径进行,直至找到目标或到达0层,即在skip graph中进行搜索的时间复杂度与skip list一致。根据文献[20]的分析,在底层节点数为n的skip list中,平均每层被搜索的节点数为 1/(1−r) 个,总时间复杂度和消息复杂度均为 O(ln n/((r−1)ln r)) ,因此,在认证系统中 r 固定时,搜索算法的时间复杂度为 O(lnn) 。
进行一次哈希操作并判断认证结果的复杂度为 O(1) ,因此认证总时间复杂度为 O(ln n) (更详细的时延数据分析见第4节),与文献[12]中的认证时间复杂度一致。此外,合理配置安控终端成员向量,可在实际应用中进一步减少认证时延。
终端入网阶段执行skip graph的节点插入算法。在该算法中,终端首先执行一次查询,之后在每一层对平均 1/r 个终端进行访问,在各层的查询时间复杂度均为 O(1/r)=O(1) 。系统共有 O(ln n) 层,因此前后时间复杂度均为 O(ln n) 。入网过程中终端尚未开始实际业务通信,时延要求不高,因此本方案入网时延能够满足安控系统实际需求。
3.2.2 空间复杂度在具有 n 个节点的区块链系统中存储 m 个区块,文献[12]中的传统区块链存储方案的总存储开销为 O(nm) [26]。在本文提出的分布式存储方案中,终端对各区块进行分布式存储,形成了有限的冗余,前 k 层中,冗余存储单条消息的空间开销最多为 O(2k) ,且根据信息随机分配特性,在每个终端处进行存储的信息空间开销平均为 O(m/n) 。因此,在系统冗余参数 k 固定时,本认证系统总存储开销为 O(m) ,相较于文献[12]的传统区块链存储方案,本文方案有良好的存储拓展性。4 实验分析
由于安控系统对设备算力和存储资源的特殊需求,基于本文方案实现的认证原型系统使用go语言自行编写,实现了轻量化和功能的定制化。部署该系统的实验装置使用了与电网安控终端通信模块性能相近的嵌入式系统终端(运行Ubuntu 18.04的嵌入式Linux系统)。
4.1 认证时延利用实现的原型系统,进行了多次实验并统计了系统内不同终端数时系统的平均单次认证时延,如图6所示。由图6可以看出,随着终端数量的增加,单次认证时延呈现增长趋势。增加的时延主要来自skip graph结构中的数据搜索过程,实验结果符合3.2节中的分析与预期。
根据调研,目前安控系统中需要进行相互认证的终端数不超过100台。在实验中,终端数为30时,系统内的单次认证时延低于370 ms,同时根据方案 O(ln n) 的时间复杂度可知,在终端数达到最大的100台时,时延不会超过570 ms,符合安控系统内终端认证需求。
4.2 平均存储开销在固定终端数为10的情况下,实验分别测试了本文方案在不同 k 值下,即不同系统冗余参数下的终端平均存储开销随认证总次数的变化,并与文献[12]方案进行了对比,实验结果如图7所示。5 结语
现有认证方法难以兼顾安全性、实时性和存储效率,因此,本文提出了基于DHT和区块链的安控终端分布式认证方案,从终端注册、终端入网和终端认证3部分给出了认证系统设计和关键算法。本文方案使用基于skip graph结构的DHT实现分布式存储,在不影响认证安全性的同时,为安控终端分布式认证提供了高效的数据查询能力和较强的存储拓展性。理论分析说明,本文方案在具有安全性的同时,有较低的时间和空间复杂度;实验结果显示,基于本文方案实现的认证系统的平均认证时延和平均存储开销均能满足安控系统的要求。
(责任编辑 张重实)
作者介绍
赖业宁(1975—) ,男,博士,高级工程师,从事大电网安全稳定控制技术研究,E-mail:laiyening@sgepri.sgcc.com.cn;★
封科(1992—) ,男,通信作者,硕士,工程师,从事大电网安全稳定控制技术研究,E-mail:fengke1@sgepri.sgcc.com.cn;
★
于同伟(1978—),男,硕士研究生,高级工程师,从事智能电网保护与控制研究,E-mail:Yu_twei@163.com;
★
王旺(1991—) ,男,硕士,工程师,从事大电网安全稳定控制技术研究,E-mail:wangwang@sgepri.sgcc.com.cn;
★
唐冠军(1988—) ,男,硕士,高级工程师,从事大电网安全稳定控制技术研究,E-mail:tangguanjun@sgepri.sgcc.com.cn.
往期回顾
◀审核:方彤
根据国家版权局最新规定,纸媒、网站、微博、微信公众号转载、摘编《中国电力》编辑部的作品,转载时要包含本微信号名称、二维码等关键信息,在文首注明《中国电力》原创。个人请按本微信原文转发、分享。欢迎大家转载分享。